ELB(ALB)のIPアドレスを確認する方法
困っていた内容
障害調査でELB(ALB)のIPアドレスを確認したいのですが、どのようにして確認したら良いでしょうか。
また、過去にIPアドレスが切り替わったタイミングも知りたいです。
前提
ALB の IP アドレスはメンテナンスやスケーリングなど様々な理由によって変化します。
そのため、 ALB の IP アドレスは常に変化するものと考え、この IP アドレスを静的に指すような設計は避けてください。1
この内容を前提とした上で、障害調査等で、ALBのIPアドレス状況を確認する方法を案内していきます。
確認方法
1.現在の IP アドレスの確認方法
ネットワークインターフェースの一覧から、IP アドレス探したい ALB の名前で検索することで確認ができます。
- EC2コンソール > ネットワークインターフェース
-
ALB 名で検索
-
検索結果に表示された、各ネットワークインターフェースのIPアドレスを確認
2.過去の IP アドレスと切り替わったタイミングの確認方法
ALB のアクセスログ2を作成していた場合、このアクセスログを確認すると過去の IP アドレスの状況が分かります。
アクセスログを有効にすると、 S3 に以下の形式でアクセスログが作成されます。
[バケット名]/AWSLogs/[AWSアカウントID]/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_load-balancer-id_end-time_ip-address_random-string.log.gz
このアクセスログの名称内に記載されている IP アドレスが、その時点で ALB に関連付けされていた IP アドレスとなります。
アクセスログ内の時刻により、 IP アドレスの動きがある程度読み取れます。
例として
s3://albsamplelog/AWSLogs/1234567890/elasticloadbalancing/ap-northeast-1/2021/08/01/
に下記アクセスログがあった場合
- 1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0000Z_aaa.aaa.aaa.aaa_123abcde.log.gz
- 1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0200Z_bbb.bbb.bbb.bbb_456fghij.log.gz
- 1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0400Z_ccc.ccc.ccc.ccc_789klmno.log.gz
これは、2021/08/01の時点で、
- aaa.aaa.aaa.aaa
- bbb.bbb.bbb.bbb
- ccc.ccc.ccc.ccc
の3つのIPアドレスが関連付けされていたことが読みとれます。
また、アクセスログの内部を確認し
1234567890_elasticloadbalancing_ap-northeast-1_albsample_20210801T0000Z_aaa.aaa.aaa.aaa_123abcde.log.gz
のみ、2021-08-01T13:00:00.000000Z を最後にログファイルの出力が無くなっていた場合、
これ以降 aaa.aaa.aaa.aaa のIP アドレスは使われなくなり、2つのIPアドレスへとスケールインしたと読み取ることができます。
最後に
前提にも書いた通り、 ALB の IP アドレスは可変です。
ALB に設定された IP アドレスを利用した設計をしてしまうと、トラブルの原因になります。
IP アドレスを固定運用した設計を検討している場合は、 NLB3 や NATゲートウェイ4をご検討下さい。